Large and diverse network environments, such as datacenters, are becoming increasingly automated and dynamic, with various clients and applications that operate on the clients constantly being added and removed. As the size of the network environments grows, the overhead of maintenance and configuration for the clients and applications grows as well. It becomes increasingly difficult to provide dynamic configurations for the clients and applications, especially when the configurations for different clients running instances of the same application cannot be statically configured, but rather need to be dynamically configured to share a set of available resources between all of the various instances of the application.